package com.design_patterns.template_method;

/**
 * @author: 李德才
 * @description:
 * @create: 2020-09-20 15:06
 **/

/**
 * 模板方法（钩子函数）：
 * 在调用某个类的方法时，该方法中调用了其他方法
 */
public class Main {

    public static void main(String[] args) {
        Parent parent = new Child();
        parent.method();
    }
}


abstract class Parent {
    public void method() {
        do1();
        do2();
    }

    abstract void do1();

    abstract void do2();
}

class Child extends Parent {

    @Override
    void do1() {
        System.err.println("do1");
    }

    @Override
    void do2() {
        System.err.println("do2");
    }
}